このページは私用WordPressの覚え書き兼、テストページです。
「SNSボタン」は、テスト検証用に仮設置しているだけなので、押しても反応しません。

027 画像がアップロードできない?(LEOサーバー)

※この記事は、過去に書いたものの再アップです。備忘録。


画像がアップロードできない!(LEOサーバー)

最初にローカルサーバー環境で自作テーマを作り、その後、本番のサーバーで運用しようとした時に遭遇したトラブルです。

何故か「画像をアップロード」のボタンを押しても、画像が投稿できません・・・。onz

その時に契約していたのが今と同じ「LEOサーバー」で、
「LEOサーバー」に限った症状なのか、他のサーバーでもよくある事なのか不明なのですが、ここでかなり悩みました。


wp-content/uploads に接続できませんでした。エラー

などと言われてしまいます。


解決法「その1」 FFFTP で保存先のフォルダを作る

WordPressでファイルがアップロードできない場合の対策

上記サイトさんでも書かれていますが、WordPress は、投稿した画像は、
wordpress/wp-content/uploads というフォルダに保存されます。
(投稿した記事のテキストは DB に保存されますが、画像はちがう)

んで、通常はこのフォルダが自動生成され、自動的にアップロードした画像のフォルダが年ごと、月ごとに作成されます(デフォルトの設定だと思う)

で、この自動生成が、サーバによってはされない場合があるよ、ってことのようです。
なので、自分で空のフォルダを作り、FFFTP で空フォルダ「uploads」をアップしておくといいよ、ってこと。

でも、私の場合は、すでに「ローカルサーバ」で作った記事をいくつかアップ済みで、
xxxxxx/wp-content/uploads の中には、もう画像フォルダがあり、画像ファイルもアップされている状態です。

実際 FFFTP で中をのぞいてみると、
wp-content/uploads/2012/09/xxxxx.jpg というように、ちゃんと画像が保存されています。
http://www.xxxxxxx.com/wp-content/uploads/2012/09/xxxxx.jpg
とブラウザにURLを打ち込んでみても、ちゃんと表示されます。


なのに、なのに、
新規でアップロードしようとすると、拒否されるんですよ!
どうも、そのフォルダを認識しない、っつーか、たどりつけない、となるみたい。


パーミッションを確認してみよう

で、参考サイトさんの次に続く文章、
「wp-contentディレクトリ」のパーミッションがデフォルトで755となっているため権限不足でディレクトリが作成できないだけ、
wp-content/uploads のパーミッションを「757」に変更してあげよう

 ↓
ダメでした。なんも変わらず、同じえらー(泣)


.htaccessファイルに追記してみる

ならば、.htaccessファイル を置いたらどうだ、ってことでやってみました。
 ↓
ダメでした。違うエラーがでました。(泣) あわてて.htaccess を撤去。(汗)


解決法「その2」-「管理画面」の「メディア」を空更新してみる

●WordPressで画像がアップロードできない不具合を修復

これは、「管理画面」→「設定」→「メディア」で、アップロードするフォルダの設定を確認してみて、ってことです。


初期設定のまま何もいじっていないので、アップロードするフォルダ先は空白(=デフォルトのwp-content/uploads になってるってこと)でしたが、念のために wp-content/uploads と、打ちこんで「更新」してみました。
 ↓
ダメでした。なんも変わらず、同じ。


やっと解決しました

さんざん2~3日悩んだ結果ですね、試しに、なんとなく実行してみたものなのですが、

xxxxx/wp-content/uploads のパーミッションは「757」に変更したものの、そういえば、その中身のパーミッションまでは、変更していなかったな・・・ と、ふと思い、

 ↓

その中のフォルダ、「2010」「2011」「2012」とかの年フォルダ、その中に作られた「01」~「09」とかの月フォルダも全部、「757」に変更してみました。


そしたら  ↓ なんと、アップロードできるようになりました!!!


いままで無反応だったアイキャッチ画像も、設定できるようになりました!!!


よ、よかった・・・・


これでやっと「イラスト目次」のページも表示されるようになりました。


もし、画像がアップロードできない謎のエラーに遭遇された方は、xxxxx/wp-content/uploads の中のフォルダ全部のパーミッションも確認してみてください。

ご参考までに。


026 検索エンジン用のファイル(robots.txt)

(※WordPress覚書メモ この記事は、過去に書いた記事の再アップです)


無くても問題ないのですが、
余分なファイルまで検索しないように制御する、検索エンジン用のファイルがあるそうです。


検索エンジン用のファイルを作成してみる(サンプル1)

User-Agent: *
Disallow: /wp-login.php
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/
Allow: /
Sitemap: http://example.com/sitemap.xml

↑このように記述して「robots」という名前で、テキスト形式で保存します。

拡張子は .txt
この robots.txtファイルは、サイトのトップに置かなければいけません。

○ http://www.xxxxxx.com/robots.txt
× http://www.xxxxxx.com/~hanako/robots.txt


上記 robots.txtファイル に記述した内容は、
全検索エンジンのインデックスを許可、ログインページと本体、テーマファイル等はインデックスさせない、というものです。


(サンプル2)すべてのファイルの登録を禁止

User-agent: *
Disallow: /

 ↑ 上記は、すべて(*)のロボットに対して、/ ではじまるファイル(つまりはすべてのファイル)を検索データベースに登録することを禁止する という記述です。


(サンプル3)goo と Google に対してのみ特定のフォルダを禁止

例えば、goo と Google に対してのみ、/himitsu と /cgi-bin の下のファイルを検索させないようにするには、次のようにします。

User-agent: moget
Disallow: /himitsu/
Disallow: /cgi-bin/

User-agent: Googlebot
Disallow: /himitsu/
Disallow: /cgi-bin/


(サンプル4)ディレクトリ名の後にスラッシュを入力すると、junkのディレクトリとその中身をすべてブロック

 ↓ /junk/のように、ディレクトリ名の後にスラッシュを入力すると、
   junkのディレクトリとその中身をすべてブロックするという意味になります。
特定のページをブロックするにはファイル名を書きます。末尾にスラッシュはいりません。

User-agent: *
Disallow: /junk/	// 該当のディレクトリとその中身をすべてブロック
Disallow: /private_file.html		// 該当のhtmlファイルのみをブロック


(サンプル5)特定の画像をブロック

Google 画像検索から特定の画像を削除するには、次のようにします。

User-agent: Googlebot-Image
Disallow: /images/xxxx.jpg


(サンプル6)すべての画像をブロック

Google 画像検索からサイトのすべての画像を削除するには、次のようにします。

User-agent: Googlebot-Image
Disallow: /


参考サイト → robots.txtの書き方と効果的な活用法


025「サイト内検索」で「タグ」が検索できない?

(※WordPress覚書メモ この記事は、過去に書いた記事の再アップです)


「タグ」が検索できない

前回の記事で、「もういっこ、問題が発生・・・」と書いたけど

どうもこのwordpressの「サイト内検索」は、本文中に記入された語句しか検索しないっぽいです・・・onz


たとえばタグにいくら「柴犬」って入れてあっても、本文中にこの単語を使ってない場合(例えば画像だけとか)は、いくら「柴犬」で検索かけてもその記事はヒットしないんです。

まあ、タグは「タグクラウド」でクリックしろってことなのか・・・?

でも「タグクラウド」使ってない場合だってあるじゃん・・・ ねえ?
その場合「タグに入れてあんのに検索かけてヒットしない」ってどうなのよ? と甚だ疑問に思うわけです。


プラグイン「search-everything」を使おう

ってことで、これを「サイト内検索」にヒットさせる方法を調べてみたところ

search-everything」というプラグインを使えばいいとわかりました。


プラグイン「search-everything」の使い方

使い方はカンタンです。
プラグインを有効にした後、
設定 → search-everything → 検索に含めたいものを選んで「Yes」にするだけです。


これで「タグ」も検索できるようになりました~~


024 index.php に複数ループをさせたせいか、サイト内検索がきかなくなってしまった件

(※WordPress覚書メモ この記事は、過去に書いた記事の再アップです)


何故か「サイト内検索」が効かない

会社のblogを「オリジナル」テーマに変更したところ、「サイト内検索」がきかなくなりました・・・onz。


使用している「オリジナル」テーマは、自サイト用に作ったテーマを流用しただけのものなので、基本的な部分はほぼ一緒。
必要最低限なテンプレートで済ませたかったので、search.php は、設置してませんでした。

(「検索結果」は、search.php がなかった場合、通常は index.php がテンプレートとして使われます。)

で、自サイトでは「検索」はちゃんと問題なく動作します。
会社用のblog では、なぜかきかない・・・onz。


「自サイト用」と「会社のblog」の違うところといえば、
「会社のblog」では「カスタム投稿は使っていない」「トップページは通常投稿(index.php)にしている」「index.php内で複数のループを使って、カテゴリーA の記事と、カテゴリーB の記事を分割して表示してる」という点くらいかな。


なので、自サイトで普通に機能する「サイト内検索」がきかないってことは、やっぱ 複数のループ(index.php) がマズイんじゃね? と思うわけですよ。

ってことで、改めてsearch.php を設置してみることにしました。


index.phpの代替テンプレートではなく、ちゃんと search.php を作ってみる

search.php
(↓ archive.php をコピーして名前を変更し、下記のハイライトした部分のみ、書き換えた)

<?php get_header(); ?>
<div id="content">
<div id="innerbox">

<?php $allsearch =& new WP_Query("s=$s&posts_per_page=-1");
$key = wp_specialchars($s, 1);
$count = $allsearch->post_count;
if($count!=0){
// 検索結果を表示:該当記事あり
echo '<h2>“<span class="ao">'.$key.'</span>” で検索した結果、下記の <span class="ao">'.$count.'</span> 件 の記事が見つかりました。</h2>';
}
else {
// 検索結果を表示:該当記事なし
 echo '<h2>“<span class="ao">'.$key.'</span>” で検索した結果、関連する記事は見つかりませんでした。</h2>';
}
?>
<br class="br30" />

<!-- 投稿情報 loop -->
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

<div class="post">
<h2 class="posttitle"><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<dl class="metadata">
<dd>投稿日:<?php the_time('Y年n月j日(D) AG:i'); ?></dd>
<dd>作成者:<?php the_author(); ?></dd>
</dl>
<?php the_post_thumbnail( array(100,160) ); ?><div class="ct"></div><?php the_excerpt(); ?>
<dl class="metadata">
<dt>カテゴリー:</dt>
<dd><?php the_category('、') ?></dd>
<?php if (get_the_tags()) { ?>
<dt>タグ:</dt>
<dd><?php the_tags('','、','') ?></dd>
<?php } ?>
</dl>
</div><!--div.post終了-->
<?php endwhile; else: ?>
<div class="post">
<p>申し訳ございません。<br />キーワードを変更して、検索してみてください。</p>
</div><!--div.post終了-->
<?php endif; ?>

<!-- 「PageNavi」 -->
<?php if(function_exists('wp_pagenavi'))://プラグイン「PageNavi」を有効にしている時 
?>
	<?php wp_pagenavi(); ?>
<?php else://プラグイン「PageNavi」を無効にした時 
?>
	<p class="navigation"><?php posts_nav_link(' | ','&laquo; 新しい記事へ','過去の記事へ &raquo;'); ?></p>
<?php endif; ?>
<br class="br30" />

</div><!--div#innerbox終了-->
</div><!--div#content終了-->

<!-- サイドバー -->
<?php get_sidebar(); ?>
<!-- フッター -->
<?php get_footer(); ?>

と記述したファイルを「テーマ」フォルダに加えてみましたら・・・


ちゃんと検索結果が表示されるようになりもうした!(・∀・)
よかった よかった


だがしかし・・・!! もういっこ、問題が発生・・・(次回につづく)


023 オリジナルテーマでウィジェットを使いたい

(※WordPress覚書メモ この記事は、過去に書いた記事の再アップです)


wordpressには「ウィジェット」という、サイドバーを簡単に編集できる機能があります。
でもいちから作った「自作テーマ」の場合、「ウィジェット」を使えるようになっていません。
今日は、「オリジナルテーマ」で「ウィジェット」を使う方法について書きたいと思います。


「オリジナルテーマ」で「ウィジェット」を使うには、functions.php に下記を記入する

<?php
//サイドバーのウェジェットを使えるようにする
register_sidebar(array(
‘before_widget’ => ‘<div id="%1$s" class="widget %2$s">’,
‘after_widget’ => ‘</div>’,
‘before_title’ => ‘<h3>’,
‘after_title’ => ‘</h3>’,
));
?>
279行目はコメントです。


コメントの書き方の違い

コメント」は、ファイルによって書き方が異なります。
htmlファイルなら <!-- --> で囲み、
<?php ?> の中なら、頭に // とつけるとその行のみコメント、
cssファイルなら /* */ で囲む、という具合です。


「ウィジェット」を出力する

次に、sidebar.php を開いて、「ウィジェット」を表示させたい箇所に、下記を挿入します。

<!--サイドバー(ウィジェット)-->
<?php if ( !function_exists('dynamic_sidebar') || !dynamic_sidebar() ) : ?>
<?php endif; ?>


これで「ウィジェット」が使えるようになりました。


022 text-transform 効かない(勝手に見出しが大文字になる)

(備忘録)


見出しの英文が何故か大文字になって直らない

 ↑ この見出しの css は、下記のように記述していました。

/* 見出し(投稿記事のみ) */
div#innerbox h1 {
border: 2px solid #a9a9a9;/* グレイの罫巻き */
background: #d3d3d3;
color: #ffffff;
font-size: 1.5em;
padding: 5px 10px;
margin-bottom: 10px;
cursor: pointer;
font-variant: small-caps;
/* -webkit-box-shadow: 0 1px 1px rgba(0,0,0,.2); */
/* -moz-box-shadow: 0 1px 1px rgba(0,0,0,.2); */
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;
}


欧文を大文字か小文字かに制御するのは、text-transform というタグで定義できます。

text-transform タグ

text-transform: none;		/* 何もしません(入力したままの状態で表示)  */
text-transform: capitalize;	/* 各単語の一文字目を大文字に変換、(他の文字は入力したままの状態)  */
text-transform: uppercase;	/* 各単語全ての文字を大文字に変換  */
text-transform: lowercase;	/* 各単語全ての文字を小文字に変換  */


text-transform: none; を、入れたのですが、まったく効かない。
body{ } に入れていて、効かないので、

div#innerbox h1 { } にも入れてみた。
やっぱり効かない。
大文字のまま。


さんざん調べたけど、効かない理由がわからない。
style.css 内を検索しても、他に text-transform: タグを使っている箇所は見つからない。


何故効かないのか・・・。


もう一度、よくよく div#innerbox h1 { } を見返してみたら・・・、

/* 見出し(投稿記事のみ) */
div#innerbox h1 {

font-variant: small-caps;

}

font-variant: small-caps; というタグが入っていたからでした・・・onz。


この一文をコメントアウトして隠したら、無事、ちゃんと効きました。


・・・見落とし ってコワイ。


021改ページ、next pageタグ

(※この記事は、過去に書いた投稿記事の再アップです)


ページ分割(改ページ)タグ

WordPressには、ひとつの記事の中で、ページ分割ページ分けできる機能があります。

改ページタグを入れると、ひとつの記事の中で、1ページ目、2ページ目と、複数ページの記事を書くことができます。


改ページタグとは、

<!--nextpage-->

と入力すると、そこで改ページとなり、それ以降の文章が2ページ目となります。
もちろん、何回使ってもよいので、ひとつの記事が=全10ページとか、全100ページとかだって可能です。


でも、これって、どういう時に使うの?

普通のブログだと、「改ページ」なんて、まず、ほとんど使い道がないかもしれません。

でも、創作活動をしている場合はどうでしょうか。
例えば、「小説」を書いている人とか。
ひとつの「小説」をひとつの記事として投稿したい場合には、このタグは使える機能だと思います。


基本的に、WordPressは、日記として日々の単体記事の投稿として使う場合が多く、
「小説サイト」などには向かないと思っています。

ちゃんと「目次」などを装備してあればまだいいのですが、
最新の記事が常にトップにくるブログ形式だと、記事を逆に遡らないと順を追って読めないので、
ブログで小説をアップしているサイトは、ものすごく読みにくくて苦手です。
(ストレスがたまって、二度と見にいかなくなることが多いです)


でもWordPressは、カスタマイズ自由なおかげで、「小説サイト」みたいな形を自由に作ることができますから、便利ですよね。


020contact-form-7テスト|formページのみ、ナビゲーションリンクを削除

コンタクトフォーム テスト

※このフォームは、テストです。押しても反応しません。


性別
男性女性




フォームの記事のみ、ナビゲーションを無しにしたい。

single.php には、 <<--前の記事へ 次の記事へ-->> というナビゲーションをつけているのですが、
一部のカテゴリー(コンタクトフォームだけの記事)には出ないようにする条件分岐を入れてみたいと思います。


single.php
<!--singleのページ送り-->
<?php if ( ! in_category( 'sz_form' )  ) : //カテゴリー「応募フォーム」=スラッグsz_formではない場合に表示?>
	<div class="p_navi">
	<div class="alignleft"><?php previous_post_link('<<-- %link', '%title', TRUE, ''); ?></div>
	<div class="alignright"><?php next_post_link('%link -->>', '%title', TRUE, ''); ?></div>
	</div>
<?php endif; ?>
カテゴリー「応募フォーム」=スラッグsz_formに表示させたくないだけなので、
否定形(頭に ! をつける)で、「応募フォーム」のカテゴリーでない場合に、singleのページ送りを表示する という形としました。
「応募フォーム」のカテゴリーの場合は何も表示しないので、<?php else: ?>省略しました。


in_category( '' ) と、is_category( '' ) があり、使い方が違うようです。

in_category( 'sz_form' ) の場合は、現在の投稿がカテゴリースラッグが sz_formに属する場合に true を返します。

参照■WordPress Codex日本語版「条件分岐タグ」



019 plugin「Contact Form 7」の使い方

(※「Contact Form 7」の使い方、覚書メモ)


「Contact Form 7」によるメールフォーム表示例(デフォルト)


<!-- 「メールフォーム サンプル」ここから↓

↑ ここまで-->

(上記は、「Contact Form 7」に最初から入っているデフォルトの設定例です)
ボックスやボタンのデザインは style.css の設定によるものなので、使用中のテーマによって見え方は異なります。


「Contact Form 7」をダウンロード

  ↓



「Contact Form 7」をインストールする

■「Contact Form 7」をインストール → メニュー「プラグイン」で 「有効」にすると、
ダッシュボードのメニューの中に「お問い合わせ」という項目が追加されます。


■「お問い合わせ」をクリックすると、「コンタクトフォーム1」という一件の初期記事が用意されています。

それをクリックして自分用に編集します。
(「コンタクトフォーム1」を直接編集してもよいし、複製を作ってもどちらでもOK)


「Contact Form 7」使い方

↓ 使い方はバージョンによっても随時変化しますので、公式のサポートページを参照してください。



「ラジオボタン」を使ってみる


試しに「ラジオボタン」を一個作って、テストしてみたんですけど、「!複数のフォームコントロールが単一の label 要素内に置かれています。」とかいうエラーが出てしまいました。

サポートページを確認したところ、
ラジオボタン」や「チェックボックス」の場合は、<label></label> タグを使っちゃいけないのだそうです。
前後の例文で使ってるから、入れなきゃいけないのかと思った・・・

そんなん、判らんがな!!
「!複数のフォームコントロールが単一の label 要素内に置かれています。」とかいう意味不明のエラーメッセージじゃなくて、「"ラジオボタン"や"チェックボックス"では "<label></label> タグ" は使用できません」って書いてよ!!
ほんとにもう・・・

上記画像のように、<label></label> タグを消したらエラーは消えました。


「メール」の設定でもエラーが出てしまった



送信元のところに [your-name][your-email] <contactform-test@ドメイン.com> と入れたらエラーが消えました。
(contactform-test@ドメイン.com というメールアカウントは、実際は作っていません。)

なんでもよいからドメイン名が入ったメールアドレスをとりあえず入れとけば実際に存在しなくてもエラーは消えるようです。
ていうか、意味あるんでしょうか。 これ・・・。
サポートページのFAQは、何度も読んだんですが、結局意味不明でした。

FAQ → Contact Form 7 設定エラーを解消する


018_2 カテゴリーの条件分岐がうまくいかない

(備忘録)


今、このblogでは、右側のサイドバー(sidebar.php)に、カテゴリーが「wordpress」の記事一覧を「目次」として表示させています。

この部分を、カテゴリーが「PHP」の時は「PHPの記事一覧」に切り替えるよう、条件分岐で変化させたいと思ったのですが、うまく動かず、数時間悩みました。


切り替えるための条件分岐

どこで条件分岐させるかは、いくつか方法があるかと思うのですが

現在 sidebar.php 内に、
<!--特定のカテゴリー(カテゴリー名=wordpress)の記事タイトル一覧をすべて表示する--> のコードを入れていて、
その箇所を、カテゴリーが「wordpress」なら○○の処理、カテゴリーが「PHP」の時は△△△の処理をする、という条件分岐のコードに修正するのが一般的かもしれません。


しかし今回は、sidebar.php をコピー流用して、sidebar-2.php というのを作り、
投稿記事のカテゴリーが「wordpress」なら sidebar.phpを、
カテゴリーが「PHP」の時はsidebar-2.php を表示する
、という方法をとってみることにしました。


それで、index.php の

<!-- サイドバー -->
<?php get_sidebar(); ?>
という箇所を条件分岐に書き換えたんですが、うまくいかない・・・


何故効かないのか・・・ しばらく悩みまくった後、・・・Σ(゚д゚;)ハッ と気がつきました。


条件分岐はどのファイルに入れるのか?

効かなかった理由は、条件分岐を index.php に入れていた為でした。
index.php ではなく single.phparchive.php に入れなければいけなかったのです。

記事をクリックで表示されるのは single.php、カテゴリー(またはメニュー)をクリックで表示されるのは archive.php
この条件分岐は index.php上ではそもそも入れても意味がなかった・・・onz

index.php は、一般的には最近の投稿が最新順に数件並び、カテゴリーも混在、というテンプレートなので、この条件分岐を入れる意味はなく、実際、条件分岐を index.php に入れても効きません
※ただし、オリジナルテーマに single.php と archive.php を作っていなかった場合は、index.php が代用されるので、記述する必要がでてきます。
(index.php の中身が長く複雑になってしまうので、シンプルに single.php と archive.php を作ってしまった方が楽かなと思いますが。)


single.php に入れる条件分岐

内容=カテゴリーが「php=ID 142」なら sidebar-2.php を出力、それ以外なら sidebar.php を出力する。

※archive.php とほぼ一緒ですが、single.php は、in_category()としています。

<!-- サイドバー -->
	<?php wp_reset_query(); if(in_category('142')):	//もしカテゴリーがID 142の「PHP」だったら ?>
		<?php get_sidebar('2'); ?>
	<?php else:	//それ以外は ?>
		<?php get_sidebar(); ?>
	<?php endif; ?>

in_category()」と「is_category()」の違い 参考URL→ 図解WordPress「この際はっきりさせておきたい in_category() と is_category() の違い」


archive.php に入れる条件分岐

内容=同じく、カテゴリーが「php=ID 142」なら sidebar-2.php を出力、それ以外なら sidebar.php を出力する。

※archive.php では、is_category()としています。

<!-- サイドバー -->
	<?php wp_reset_query(); if(is_category('142')):	//もしカテゴリーがID 142の「PHP」だったら ?>
		<?php get_sidebar('2'); ?>
	<?php else:	//それ以外は ?>
		<?php get_sidebar(); ?>
	<?php endif; ?>


sidebar.php には以下をいれています

(sidebar-2.php との違いは、「目次タイトル」=2行目と「カテゴリーID」=6行目のみ)

<!--特定のカテゴリー(wordpressのみ)の記事タイトル一覧をすべて表示する-->
<li><h3>wordpress関連の記事 - 目次</h3>
<?php
    $myQuery = new WP_Query(); // WP_Queryオブジェクト生成
    $param = array( //パラメータ。
		'cat' => '26', // カテゴリーID26の「wordpress」のみを表示。
        'posts_per_page' => '-1', //(整数)表示する記事数。-1 ならすべての投稿を取得。
        'post_status' => 'publish', //取得するステータスを指定:publish=公開済みのものだけ
        'orderby' => 'date', //並び替え引数。日付で並べる。
        'order' => 'asc' //昇順。古い記事が上。
    );
    $myQuery->query($param);  // クエリにパラメータを渡す
?>
<ul>
<?php if($myQuery->have_posts()): while($myQuery->have_posts()) : $myQuery->the_post(); ?>
        <li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>の詳細へ">■<?php the_title(); ?></a></li>
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>
</ul>
</li>


sidebar-2.php には以下をいれています

(sidebar.php との違いは、「目次タイトル」=2行目と「カテゴリーID」=6行目のみ)

<!--特定のカテゴリー(PHP)の記事タイトル一覧をすべて表示する-->
<li><h3>PHP関連の記事 - 目次</h3>
<?php
    $myQuery = new WP_Query(); // WP_Queryオブジェクト生成
    $param = array( //パラメータ。
		'cat' => '142', // カテゴリーID 142の「PHP」のみを表示。
        'posts_per_page' => '-1', //(整数)表示する記事数。 -1 ならすべての投稿を取得。
        'post_status' => 'publish', //取得するステータスを指定:publish=公開済みのものだけ
        'orderby' => 'date', //並び替え引数。日付で並べる。
        'order' => 'asc' //昇順。古い記事が上。
    );
    $myQuery->query($param);  // クエリにパラメータを渡す
?>
<ul>
<?php if($myQuery->have_posts()): while($myQuery->have_posts()) : $myQuery->the_post(); ?>
        <li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>の詳細へ">■<?php the_title(); ?></a></li>
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>
</ul>
</li>


カテゴリーIDの番号は、カテゴリーを作り直したり、blogを新しく作り直したりすると変わります。 その都度ID番号を直すのを忘れずに。